package com.cskaoyan._07vp;

/**
 * @description:
 * @author: 景天
 * @date: 2023/2/2 11:14
 **/
/*
可变参数适用于：参数个数不确定，类型确定的情况，Java会自动把可变参数当作数组处理。

语法:
    权限修饰符列表 方法返回值类型 方法名(形参列表,数据类型... 变量名){}

调用可变参数的方法时，编译器为该可变参数隐含创建一个数组，在方法体中以数组的形式访问可变参数。



需求: 求不确定个数的int数值之和
 */
public class Demo {
    public static void main(String[] args) {
        //int sum = getSum(8);
        //System.out.println("sum = " + sum);

        //int sum2 = getSum2(1);
        //System.out.println("sum2 = " + sum2);

        //int sum3 = getSum2(1,2,3,4,5);
        //System.out.println("sum3 = " + sum3);

        // 用数组的方式进行调用
        int[] arr = {1, 2, 3};
        int result = getSum(arr);
        System.out.println(result);
    }

    // 先用循环的方式做
    //public static int getSum(int[] nums) {
    //    int sum = 0;
    //    for (int i = 1; i < nums.length; i++) {
    //        sum += i;
    //    }
    //    return sum;
    //}

    // 'getSum(int...)' is already defined in 'com.cskaoyan._07vp.Demo'


    // 使用可变长参数
    public static int getSum(int... args) {
        int sum = 0;
        for (int arg : args) {
            sum += arg;
        }
        return sum;
    }

}
